;a 判断列表中是否有空元素
(defun enigma (x)
	(and (not (null x))
			 (or (null (car x))
					 (enigma (cdr x)))))

(print (enigma '(1 23 3 4 4 nil)))
(print (enigma '(1 23 3 4 4 )))

;b 获取 x 在 y 中第一次出现的位置, and 操作是用来混淆的，没有实际作用
(defun mystery (x y)
	(if (null y)
		nil
		(if (eql (car y) x)
			0
			(let ((z (mystery x (cdr y))))
				(and z (+ z 1))))))

(print (mystery 1 '(1 2 3 4 5 6 1)))
(print (mystery 6 '(1 2 3 4 5 6 1)))


